The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices, and computer systems may be found in many different settings. Computer systems typically include a combination of hardware, such as semiconductors and circuit boards, and software, also known as computer programs. As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated and complex computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
One use of computer systems is in products that use XML (Extensible Markup Language) documents. XML documents are often created according to a particular structure defined by a Document Type Definition (DTD) or an XML schema. An XML document is valid if it adheres to the rules of its associated DTD or schemas. XML-aware content management systems (CMS) such as Documentum or IBM Solution for Compliance in a Regulated Environment (SCORE) provide services to manage and validate XML document instances in a content repository.
To ensure validity of the document content, a content management system maintains an association between a document instance and its schemas and performs validity checking before moving the document content into the content repository. But, when a schema changes, the document instances (of which thousands may exist) that reference the schema may become invalid, depending on whether the schema change is a compatible schema change or an incompatible schema change. A compatible schema change is one in which the schema is backward compatible with existing document instances (e.g. a new optional element is added to the schema). In this case, the existing document instances will remain valid with no required changes. An incompatible schema change is one in which the schema is not backward compatible (e.g., a new required element is added to the schema). In this case, the existing document instances that reference the changed schema become invalid, unless they are updated to conform to the new schema changes. Current content management systems experience difficulty in finding all of the document instances that reference the updated schema, determining the change that was made to the schema that caused the updated schema to be incompatible with the document instances, and modifying the document instances to comply with the updated schema.
The problem of incompatible schema changes becomes even more daunting in a regulated environment that can have several document lifecycle states. For example, document versions may be in a “draft” state, a “reviewed” state, and an “approved” state, where some document versions are allowed to change to conform to an incompatible schema change and some document versions are not allowed to change to conform to an incompatible schema change. For example, typically if a document instance is in an “approved” state in a regulated environment, the document can no longer be changed to conform to an incompatible schema change.
Thus, a better technique is needed for handling changes to schemas.